#include <vector>
#include <iostream>

// 示例结构体
struct Data {
    std::vector<int> content;
    Data() : content(1000, 1) {} 							// 大型数据初始化
};

// 值拷贝函数
void processByCopy(Data data) {
    data.content[0] = 10;  								// 修改不会影响原数据
}

// 引用访问函数
void processByReference(Data& data) {
    data.content[0] = 10;  								// 直接修改原数据
}

// 移动语义函数
void processByMove(Data&& data) {
    std::vector<int> newContent = std::move(data.content); 	// 转移数据
}

int main() {
    Data originalData;
    processByCopy(originalData);
    processByReference(originalData);
    Data anotherData;
    processByMove(std::move(anotherData));
    return 0;
}